import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../views/home/Home.vue'
import Welcome from '../views/welcome/Welcome.vue'

import Users from '../views/user/User.vue'
import Rights from '../views/rights/Rights.vue'
import Roles from '../views/rights/Roles.vue'

import Cate from '../views/goods/Cate.vue'
import Params from '../views/goods/Params.vue'
import List from '../views/goods/List.vue'
import Add from '../views/goods/Add.vue'
import Order from '../views/order/Order.vue'
import Report from '../views/report/Report.vue'
//懒加载
// const Users = () =>
//     import ("../views/user/User")

Vue.use(VueRouter)

const routes = [{
        path: '/',
        redirect: '/login'
    },
    {
        path: '/login',
        component: Login
    },
    {
        path: '/home',
        component: Home,
        redirect: '/welcome', //重定向
        children: [{ //Home子路由
                path: '/welcome',
                component: Welcome
            },
            {
                path: '/users',
                component: Users
            },
            {
                path: '/rights',
                component: Rights
            },
            {
                path: '/roles',
                component: Roles
            },
            {
                path: '/categories',
                component: Cate
            },
            {
                path: '/params',
                component: Params
            },
            {
                path: '/goods',
                component: List
            },
            {
                path: '/goods/add',
                component: Add
            },
            {
                path: '/orders',
                component: Order
            },
            {
                path: '/reports',
                component: Report
            }
        ]
    }

]

const router = new VueRouter({
    routes,
    mode: 'history'
})

//挂载 路由导航守卫
router.beforeEach((to, from, next) => {
    //to将要访问的路径
    //from 代表从哪个路径跳转而来
    //next是函数 表示放行
    //net()放行   next('/long')强制跳转

    if (to.path === '/login') return next();
    //获取token
    const tokenStr = window.sessionStorage.getItem('token')
    if (!tokenStr) return next('/login')
    next()
})
export default router